bgo#625416 - Don't reload the filechooser's folder during a re-map event
authorFederico Mena Quintero <federico@novell.com>
Tue, 10 Aug 2010 16:36:03 +0000 (11:36 -0500)
committerFederico Mena Quintero <federico@novell.com>
Tue, 10 Aug 2010 16:36:03 +0000 (11:36 -0500)
Long ago, before we had file monitoring at the GIO/Glib level, we would
reload the current folder each time a file chooser gets (re)mapped.
This was basically to let the GIMP recycle the same file chooser for all
file/open or file/save operations, instead of creating a new one every time.
In that case, we reloaded the folder with each ::map() event so that the
file chooser would present an up-to-date view of the folder that was being
displayed.  Now, the folder should always be up-to-date as we do
file monitoring all the time.

Signed-off-by: Federico Mena Quintero <federico@novell.com>
gtk/gtkfilechooserdefault.c
gtk/gtkfilechooserprivate.h
gtk/tests/filechooser.c

index 9100ea66281632e34968dacaf9b1bcc691e01da1..a4fb204f09afefd699e7e2f17a3f2cc7c19569a1 100644 (file)
@@ -5860,17 +5860,6 @@ gtk_file_chooser_default_map (GtkWidget *widget)
            */
           break;
 
-        case RELOAD_WAS_UNMAPPED:
-          /* Just reload the current folder; else continue
-           * the pending load.
-           */
-          if (impl->current_folder)
-            {
-              pending_select_files_store_selection (impl);
-              change_folder_and_display_error (impl, impl->current_folder, FALSE);
-            }
-          break;
-
         default:
           g_assert_not_reached ();
       }
@@ -5894,8 +5883,6 @@ gtk_file_chooser_default_unmap (GtkWidget *widget)
   settings_save (impl);
 
   GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->unmap (widget);
-
-  impl->reload_state = RELOAD_WAS_UNMAPPED;
 }
 
 static void
index 9f02b42e6732aa5a1f8c4f687eb6f03bf00dcb88..a3ccaae89cf66e0ddb5acf3a83c75768faa1b588 100644 (file)
@@ -138,8 +138,7 @@ typedef enum {
 
 typedef enum {
   RELOAD_EMPTY,                        /* No folder has been set */
-  RELOAD_HAS_FOLDER,           /* We have a folder, although it may not be completely loaded yet; no need to reload */
-  RELOAD_WAS_UNMAPPED          /* We had a folder but got unmapped; reload is needed */
+  RELOAD_HAS_FOLDER            /* We have a folder, although it may not be completely loaded yet; no need to reload */
 } ReloadState;
 
 typedef enum {
index 424436cd35aa63bfa80fc60847fe1e2a4be610e3..3d82eefd6636da44fcf091749c5d785e8317b429 100644 (file)
@@ -758,7 +758,6 @@ test_reload_sequence (gboolean set_folder_before_map)
   passed = passed && (impl->current_folder != NULL
                      && impl->browse_files_model != NULL
                      && (impl->load_state == LOAD_PRELOAD || impl->load_state == LOAD_LOADING || impl->load_state == LOAD_FINISHED)
-                     && impl->reload_state == RELOAD_WAS_UNMAPPED
                      && (impl->load_state == LOAD_PRELOAD ? (impl->load_timeout_id != 0) : TRUE)
                      && ((impl->load_state == LOAD_LOADING || impl->load_state == LOAD_FINISHED)
                          ? (impl->load_timeout_id == 0 && impl->sort_model != NULL)